package service

import (
	"RocFamilySystem/internal/repository"
	"RocFamilySystem/models"
)

type SysRoleService struct {
	SysRoleRepository *repository.SysRoleRepository
}

// 初始化
func init() {
	registerContainer["SysRoleService"] = &SysRoleService{}
}

// SetRepository 设置持久层
func (service *SysRoleService) SetRepository(sysRoleRepository *repository.SysRoleRepository) {
	service.SysRoleRepository = sysRoleRepository
}

// AddSysRole 添加系统角色
func (service *SysRoleService) AddSysRole(sysRole *models.SysRole) {
	service.SysRoleRepository.InsertSysRole(sysRole)
}

// RemoveSysRole 删除系统角色
func (service *SysRoleService) RemoveSysRole(sysRoleId int) {
	service.SysRoleRepository.DeleteSysRole(sysRoleId)
}

// RemoveSysRoleBatch 批量删除系统角色
func (service *SysRoleService) RemoveSysRoleBatch(ids []string) {
	service.SysRoleRepository.DeleteSysRoleBatch(ids)
}

// ModifySysRole 修改系统角色
func (service *SysRoleService) ModifySysRole(sysRole *models.SysRole) {
	service.SysRoleRepository.UpdateSysRole(sysRole)
}

// QuerySysRole 查询系统角色
func (service *SysRoleService) QuerySysRole(sysRole *models.SysRole, pageNum, pageSize int) PageInfo {
	tables, total := service.SysRoleRepository.SelectSysRole(sysRole, pageNum, pageSize)
	return toPageInfo(pageNum, pageSize, total, tables)
}

// QuerySysRoleById 通过ID查询系统角色
func (service *SysRoleService) QuerySysRoleById(id int) models.SysRole {
	return service.SysRoleRepository.SelectSysRoleById(id)
}
